////////////////////////////////////////////////////////////////////////////////

#include "client_engine.h"

////////////////////////////////////////////////////////////////////////////////


ClientEngine::ClientEngine() : m_KeyFlags (0x0), m_MousePosition(0,0)
{
}


////////////////////////////////////////////////////////////////////////////////


ClientEngine::~ClientEngine()
{
}


////////////////////////////////////////////////////////////////////////////////


void ClientEngine::ProcessEvent( ClientEngine::Event _event )
{
    switch (_event)
    {
    case W_DOWN:
        m_KeyFlags |= W_KEY;
        break;

    case W_UP:
        m_KeyFlags &= ~W_KEY;
        break;

    case S_DOWN:
        m_KeyFlags |= S_KEY;
        break;

    case S_UP:
        m_KeyFlags &= ~S_KEY;
        break;

    case A_DOWN:
        m_KeyFlags |= A_KEY;
        break;

    case A_UP:
        m_KeyFlags &= ~A_KEY;
        break;

    case D_DOWN:
        m_KeyFlags |= D_KEY;
        break;

    case D_UP:
        m_KeyFlags &= ~D_KEY;
        break;

    case MOUSE1_DOWN:
        m_KeyFlags |= MOUSE_1;
        break;

    case MOUSE1_UP:
        m_KeyFlags &= ~MOUSE_1;
        break;

    default:
        break;
    }
}


////////////////////////////////////////////////////////////////////////////////


void ClientEngine::ProcessMouseMotion( int x, int y )
{
    m_MousePosition.first = x;
    m_MousePosition.second = y;
}


////////////////////////////////////////////////////////////////////////////////


unsigned int ClientEngine::GetKeyFlags() const
{
    return m_KeyFlags;
}


////////////////////////////////////////////////////////////////////////////////


std::pair<int, int> ClientEngine::GetMousePosition() const
{
    return m_MousePosition;
}


////////////////////////////////////////////////////////////////////////////////
